package com.wanlian.service;

import com.wanlian.entity.Device;
import com.wanlian.entity.Storage;
import com.wanlian.entity.StorageItem;
import com.wanlian.entity.User;
import com.wanlian.model.ResultModel;
import com.wanlian.vo.DeviceFileVo;
import com.wanlian.vo.Page;

import javax.xml.transform.Result;


public interface StorageServices {

    /**
     * 添加云盘
     *
     * @param storage
     * @return
     */
    ResultModel doAdd(Storage storage);

    /**
     * 添加云盘
     *
     * @param device
     * @return
     */
    ResultModel doAdd(Device device);

    /**
     * 修改云盘
     *
     * @param storage
     * @return
     */
    ResultModel doEdit(Storage storage);

    /**
     * 添加云盘子项
     *
     * @param item
     * @return
     */
    ResultModel doAddItem(StorageItem item);

    /**
     * 修改云盘子项
     *
     * @param item
     * @return
     */
    ResultModel doEditItem(StorageItem item);

    /**
     * 删除云盘子项
     *
     * @param item
     * @return
     */
    ResultModel doDelete(StorageItem item);

    /**
     * 查询用户云盘
     *
     * @param userId
     * @return
     */
    ResultModel queryStorageByUserId(int userId, String deviceId);

    /**
     * 通过storageId获取用户云盘子项
     *
     * @param storageId
     * @return
     */
    ResultModel queryItemsByStorageId(int storageId, Page page);

    /**
     * 通过storageId和文件类型获取用户云盘子项
     *
     * @param storageId
     * @param fileType
     * @return
     */
    ResultModel queryItemsByStorageIdAndFileType(int storageId, int fileType);

    /**
     * 根据ID获取云盘子项
     *
     * @param id
     * @return
     */
    StorageItem queryStorageItemById(int id);

    /**
     * 根据设备ID获取云盘
     *
     * @param deviceId
     * @return
     */
    Storage queryStorageByDId(String deviceId);


    /**
     * 更新全部文件
     * @param deviceFileVo
     * @return
     */
    ResultModel doUpdateStorageItems(DeviceFileVo deviceFileVo);
}
